今天我們來學習基本的加解密練習,我打算使用互斥邏輯(XOR)來試試看
XOR的真值表:
A | B | A XNOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
我們假設原始明文為「IRON」,對應到電腦的ASCII編碼,加密的過程就會變成如下表格
名稱 | 內容 | 二進制編碼 |
---|---|---|
明文 | IRON | 01001001 01010010 01001111 01001110 |
金鑰 | 321 | 00100001 00100000 00011111 00100001 |
密文 | hrPo | 01101000 01110010 01010000 01101111 |
我們可以得到密文「hrPo」 | ||
解密的方法亦然 | ||
名稱 | 內容 | 二進制編碼 |
--- | --- | --- |
密文 | hrPo | 01101000 01110010 01010000 01101111 |
金鑰 | 321 | 00100001 00100000 00011111 00100001 |
明文 | IRON | 01001001 01010010 01001111 01001110 |
由此可見,使用正確的演算法可以完整地進行加密和解密的動作 | ||
心得:原本在練習的時候打算使用XNOR來實作,但發現二進制編碼的第1位數開頭是1的話常常是特殊字符,所以改成用XOR來做。 |